import { defineStore } from 'pinia'
import { computed, ref } from 'vue'
import type {
    LoginParams,
    LoginResponseData
} from '@/api/login/type.ts'
import {reqLogin} from "@/api/login/index.ts";

export const useUserStore = defineStore('user', () => {

        // 小仓库存储数据的地方
        //在 Setup Store 中：
        // ref() 就是 state 属性
        // computed() 就是 getters
        // function() 就是 actions
        const token = ref<string | undefined>() //用户token
        // 用户登录的方法
        const userLogin = async (data: LoginParams) => {
            // 登录请求
            let result: LoginResponseData = await reqLogin(data)
            console.log(result)
            //登录请求：成功200->token
            //登录请求：失败201->登录失败错误的信息
            if (result.code === 200) {
                // pinia仓库存储token
                token.value = result.data
                console.log(token.value)
                return 'ok'
            } else {
                return Promise.reject(new Error(result.data))
            }
        }
        return {
            userLogin,
            token,

        }
    },   // {
    //   persist: {
    //       paths: ['token'], // 仅持久化 token 字段
    //   }
    // },
    {
        persist: true, // 持久化整个 store
    },
)
